/**
 * 0.修改 beanDefinition - {@link com.hmdp.test.lifecycle.ext.AMyBeanFactoryPostProcessor#postProcessBeanFactory}
 *
 * 1.实例化
 *      1.1.实例化前置 - {@link com.hmdp.test.lifecycle.ext.BMyInstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation}
 *      1.2.实例化(反射) - {@link com.hmdp.test.lifecycle.bean.MyBean#MyBean()}
 *      1.3.实例化后置 - {@link com.hmdp.test.lifecycle.ext.BMyInstantiationAwareBeanPostProcessor#postProcessAfterInstantiation}
 *      1.4.实例化属性修改 - {@link com.hmdp.test.lifecycle.ext.BMyInstantiationAwareBeanPostProcessor#postProcessProperties}
 *
 * 2.初始化
 *      2.1.给用户属性赋值 - {@link com.hmdp.test.lifecycle.bean.MyBean#setAge}
 *      2.2.给容器属性赋值 - 执行实现了 Aware 接口的方法 - {@link com.hmdp.test.lifecycle.ext.CMyAllAwareInterface}
 *      2.3.初始化前置方法 - {@link com.hmdp.test.lifecycle.ext.DBeanPostProcessor#postProcessBeforeInitialization}
 *      2.4.初始化方法 -
 *          2.4.1. - {@link com.hmdp.test.lifecycle.bean.MyBean#initPostConstruct}
 *          2.4.2. - {@link com.hmdp.test.lifecycle.bean.MyBean#afterPropertiesSet}
 *          2.4.3. - {@link com.hmdp.test.lifecycle.bean.MyBean#initMethod}
 *      2.5.初始化后置方法 - {@link com.hmdp.test.lifecycle.ext.DBeanPostProcessor#postProcessAfterInitialization}
 *
 * 3.使用中
 *      3.1.使用中 - {@link com.hmdp.test.lifecycle.bean.MyBean#working}
 *
 * 4.销毁
 *      4.0.springBeanScope -
 *          {@link org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_SINGLETON}
 *          单例模式下，伴随进程结束而销毁
 *
 *
 *          {@link org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_PROTOTYPE} - 原理：深拷贝，对象复制
 *          多例模式下，spring无法进行管理，所以将生命周期交给用户控制，用户用完bean对象后，java垃圾处理器会自动将无用的对象进行回收操作
 *
 * @author lizhihui
 */
package com.hmdp.test.lifecycle;